import gmpy2
import libnum

n= 121769936784982302455460882778727803049384633262560695513781994654895190859753979310564561712445845918288140931499625808990896367059857863794677794634764954265917223929188027566735170858722793015537480829986990608756383815655534511937235703892950567493911917178761554143379884176240162037489989420552078127671
e= 54722
c= 68207327189131286430765764525947832439888346002213816928140706886898558628392596589715994944626609815778649728495478844245774029669442060829925589118748033844002399193350339069964179052517763638951854264605935062729791334189169468172816314672207667470048850163934061677572210757247460567864055270415151846298
h= 12176993678498230245546088277872780304938463326256069551378199465489519085975397931056456171244584591828814093149962580899089636705985786379467779463476493219517172984909297814745438140651274778256117288586982848108213932163133817644505376344716130049020474232954521634539644016004694898461955741388897934560


cc1=gmpy2.gcd(e,h)
d=gmpy2.invert(e//cc1,h)
m=pow(c,d,n)
flag,s=gmpy2.iroot(m,cc1)
print(libnum.n2s(int(flag)))


# for h2 in range(4,8):
#     try:
#         phi = h * h2
#         print(h2)
#         cc1 = gmpy2.gcd(e, phi)
#         print(cc1)
#         d = gmpy2.invert(e // cc1, phi)
#         print(d)
#         m = pow(c, d, n)
#         flag, s = gmpy2.iroot(m, cc1)
#         print(flag)
#         print(libnum.n2s(int(flag)))
#     except:
#         continue
